package br.com.abelha.manager;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Random;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.ViewFlipper;
import br.com.abelha.manager.db.DAOAbastAgua;
import br.com.abelha.manager.db.DAODestinoFezes;
import br.com.abelha.manager.db.DAODestinoLixo;
import br.com.abelha.manager.db.DAOFormA;
import br.com.abelha.manager.db.DAOPessoa;
import br.com.abelha.manager.db.DAOPlanoSaude;
import br.com.abelha.manager.db.DAOTratAgua;
import br.com.abelha.manager.entity.AbastecimentoAgua;
import br.com.abelha.manager.entity.DestinoFezes;
import br.com.abelha.manager.entity.DestinoLixo;
import br.com.abelha.manager.entity.FormA;
import br.com.abelha.manager.entity.Pessoa;
import br.com.abelha.manager.entity.PlanoSaude;
import br.com.abelha.manager.entity.TipoFichaB;
import br.com.abelha.manager.entity.TratamentoAgua;
import br.com.abelha.manager.validator.AbelhaUtils;

/**
 * @author dalsonsouza
 */

public class FichaA extends Activity{

	private static String TAG;
	
	/**
	 * TextView e TextEdit para futuras validacoes
	 */

	private TextView dateDisplay;
	private TextView timeDisplay;
	private TextView dataNascimento;
	private TextView showBirth;
	private TextView familiaIncome;
	
	private boolean fromInsert = true;
	
	private Button pickDate;
	private int year, month, day;
	private Button pickTime;
	private int hours, min;
	private DAOFormA daoFormA;
	private DAOPessoa daoPessoa;
	private Pessoa pessoa;
	private TipoFichaB listaTipoFichaB;
	
	private Button pickDateBirth;
	private int yearBir,monthBir,dayBir;

	static final int DATE_DIALOG_ID = 1;
	static final int TIME_DIALOG_ID = 2;
	static final int LIST_CONDI = 3;
	static final int DATE_BIRTHDAY = 7;

	private CheckBox ficha1,ficha2,ficha3,ficha4,ficha5,ficha6,ficha7,ficha8, ficha9, ficha10, ficha11, ficha12, ficha13,ficha14,ficha15;
	
	protected Button addPessoa;
	protected Button delPessoa;
	protected Button botaoListaPessoas;

	private Spinner spinnerSexo;
	private Spinner spinnerAlfabetizado;

	EditText name;
	EditText occu;

	private List<Pessoa> listPessoa = new ArrayList<Pessoa>();
	
	/**
	 * Classe de validacao
	 */
	
	private AbelhaUtils abelhaValidator;
	
	private FormA formA;

	public FichaA() {
		TAG = this.getClass().getName();
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// Set main.XML as the layout for this Activity
		setContentView(R.layout.main);

		pessoa = new Pessoa();
		abelhaValidator = new AbelhaUtils();

		formA = (FormA) getIntent().getSerializableExtra("br.com.abelha.manager.entity.FormA");
		fromInsert = (boolean) getIntent().getBooleanExtra("fromInsert", true);
		
		familiaIncome = (TextView) findViewById(R.id.familia_income); 
		Integer familiaId = new Random().nextInt();
		familiaIncome.setText(familiaId.toString());
		
		if (formA == null) {
			formA = new FormA();
		}
		
		formA.setFamilia(familiaId);
		
		if(!fromInsert){
			listPessoa = AbelhaUtils.checkPessoa(formA, this);
		}
		
		Log.d(TAG, formA.toString());
		
		/**
		 * Definicoes de Data e Hora da Visita
		 */

		dataNascimento = (TextView)findViewById(R.id.TextView03);
		dateDisplay = (TextView)findViewById(R.id.TextView01);

		pickDate = (Button)findViewById(R.id.Button01);
		
		pickDate.setOnClickListener( new OnClickListener() {

			@Override
			public void onClick(View v) {
				showDialog(DATE_DIALOG_ID);
			}

		});
		
		showBirth = (TextView)findViewById(R.id.anosPessoa);
		
		pickDateBirth = (Button)findViewById(R.id.Button03);
		pickDateBirth.setOnClickListener( new OnClickListener() {

			@Override
			public void onClick(View v) {
				showDialog(DATE_BIRTHDAY);
			}

		});

		final Calendar cal = Calendar.getInstance();
		year = cal.get(Calendar.YEAR);
		month = cal.get(Calendar.MONTH);
		day = cal.get(Calendar.DAY_OF_MONTH);
		
		yearBir = cal.get(Calendar.YEAR);
		monthBir = cal.get(Calendar.MONTH);
		dayBir = cal.get(Calendar.DAY_OF_MONTH);

		updateDate(formA);
		updateDateBirth();

		timeDisplay = (TextView)findViewById(R.id.TextView02);
		pickTime = (Button)findViewById(R.id.Button02);

		pickTime.setOnClickListener( new OnClickListener () {

			@Override
			public void onClick(View v) {
				showDialog(TIME_DIALOG_ID);

			}

		});

		hours = cal.get(Calendar.HOUR);
		min = cal.get(Calendar.MINUTE);

		updateTime(formA);

		/**
		 * Fim das definiçoes de Data e Hora
		 */
		

		ficha1 = (CheckBox) findViewById(R.id.ficha_1);
		ficha2 = (CheckBox) findViewById(R.id.ficha_2);
		ficha3 = (CheckBox) findViewById(R.id.ficha_3);
		ficha4 = (CheckBox) findViewById(R.id.ficha_4);
		ficha5 = (CheckBox) findViewById(R.id.ficha_5);
		ficha6 = (CheckBox) findViewById(R.id.ficha_6);
		ficha7 = (CheckBox) findViewById(R.id.ficha_7);
		ficha8 = (CheckBox) findViewById(R.id.ficha_8);
		
		ficha9 = (CheckBox) findViewById(R.id.ficha_9);
		ficha10 = (CheckBox) findViewById(R.id.ficha_10);
		ficha11 = (CheckBox) findViewById(R.id.ficha_11);
		ficha12 = (CheckBox) findViewById(R.id.ficha_12);
		ficha13 = (CheckBox) findViewById(R.id.ficha_13);
		ficha14 = (CheckBox) findViewById(R.id.ficha_14);
		ficha15 = (CheckBox) findViewById(R.id.ficha_15);
		

       	EditText numero = (EditText)findViewById(R.id.numero_income);
       	numero.setText(formA.getNumero());
    	
    	EditText endereco = (EditText)findViewById(R.id.et_income);
    	endereco.setText(formA.getEndereco());
    	
    	EditText bairro = (EditText)findViewById(R.id.bairro_income);
    	bairro.setText(formA.getBairro());
    	
    	EditText cep = (EditText)findViewById(R.id.cep_income);
    	cep.setText(formA.getCep());

    	EditText cidade = (EditText)findViewById(R.id.cidade_income);
    	cidade.setText(formA.getMunicipio());
    	
    	EditText observacoes = (EditText)findViewById(R.id.obs_income);
    	observacoes.setText(formA.getObservacoes());
    	
		 /**
		  * Definicoes de Spinners
		  */

		  // Add a few countries to the spinner
		  Spinner spinnerEstados = (Spinner) findViewById(R.id.spinner_estado);
		  ArrayAdapter estadoAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "SP", "MG", "RJ" });
		  spinnerEstados.setAdapter(estadoAdapter);
		  int estadoPosition = estadoAdapter.getPosition(formA.getEstado());
		  if(estadoPosition >= 0) spinnerEstados.setSelection(estadoPosition);

		  // Spinner Sexo
		  spinnerSexo = (Spinner) findViewById(R.id.spinner_sexo);
		  ArrayAdapter sexoAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "Masculino", "Feminino" });
		  spinnerSexo.setAdapter(sexoAdapter);

		  // Spinner Alfabetizado
		  spinnerAlfabetizado = (Spinner) findViewById(R.id.spinner_alfa);
		  ArrayAdapter alfaAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "Sim", "Nao" });
		  spinnerAlfabetizado.setAdapter(alfaAdapter);

		  // Spinner Numero Comodos
		  Spinner spinnerNumeroComodos = (Spinner) findViewById(R.id.spinner_comodos);
		  ArrayAdapter numeroComodosAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" });
		  spinnerNumeroComodos.setAdapter(numeroComodosAdapter);
		  int numeroComodoPosition = numeroComodosAdapter.getPosition(String.valueOf(formA.getNum_comodos()));
		  if(numeroComodoPosition >= 0) spinnerNumeroComodos.setSelection(numeroComodoPosition);

		  // Spinner Energia
		  Spinner spinnerEnergia = (Spinner) findViewById(R.id.spinner_energia);
		  ArrayAdapter energiaAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "Sim", "Nao" });
		  spinnerEnergia.setAdapter(energiaAdapter);
		  int energiaPosition = energiaAdapter.getPosition(formA.getEnergia_eletrica());
		  if(energiaPosition >= 0) spinnerEnergia.setSelection(energiaPosition);

		  destinoLixoSpinner(formA);
		  tratAguaSpinner(formA);
		  abastAguaSpinner(formA);
		  destinoFezesSpinner(formA);

		  Spinner spinner_tpfamiliaplano = (Spinner) findViewById(R.id.spinner_tpfamiliaplano);
		  ArrayAdapter spinner_tpfamiliaplanoAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "Sim", "Nao" });
		  spinner_tpfamiliaplano.setAdapter(spinner_tpfamiliaplanoAdapter);

		  Spinner spinner_tpnplanosaude = (Spinner) findViewById(R.id.spinner_tpnplanosaude);
		  ArrayAdapter spinner_tpnplanosaudeAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" });
		  spinner_tpnplanosaude.setAdapter(spinner_tpnplanosaudeAdapter);
		  int planoSaudePosition = spinner_tpnplanosaudeAdapter.getPosition(String.valueOf(formA.getNumero_pessoas_plano()));
		  if(planoSaudePosition >= 0) spinner_tpnplanosaude.setSelection(planoSaudePosition);

		  planoSaudeSpinner(formA);

		  Spinner spinner_tpcasodoenca = (Spinner) findViewById(R.id.spinner_tpcasodoenca);
		  ArrayAdapter spinner_tpcasodoencaAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "Hospital", "Unidade de Saude", "Benzedeira", "Farmacia", "Outros/Especificar" });
		  spinner_tpcasodoenca.setAdapter(spinner_tpcasodoencaAdapter);
		  if("Sim".equals(formA.getDoenca_benzedeira())) {
			  spinner_tpcasodoenca.setSelection(2);
		  } else if("Sim".equals(formA.getDoenca_farmacia())) {
			  spinner_tpcasodoenca.setSelection(3);
		  } else if("Sim".equals(formA.getDoenca_hospital())) {
			  spinner_tpcasodoenca.setSelection(0);
		  } else if("Sim".equals(formA.getDoenca_outros())) {
			  spinner_tpcasodoenca.setSelection(4);
		  } else if("Sim".equals(formA.getDoenca_us())) {
			  spinner_tpcasodoenca.setSelection(1);
		  }
		  EditText tpcasodoenca_outros = (EditText) findViewById(R.id.tpcasodoenca_income);
		  tpcasodoenca_outros.setText(formA.getDoenca_quais());

		  Spinner spinner_tpgruposcomunitarios = (Spinner) findViewById(R.id.spinner_tpgruposcomunitarios);
		  ArrayAdapter spinner_tpgruposcomunitariosAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "Cooperativa", "Grupo Religioso", "Associacoes", "Outros/Especificar"});
		  spinner_tpgruposcomunitarios.setAdapter(spinner_tpgruposcomunitariosAdapter);
		  if("Sim".equals(formA.getGrupos_comun_cooperativa())) {
			  spinner_tpgruposcomunitarios.setSelection(0);
		  } else if("Sim".equals(formA.getGrupos_comun_religioso())) {
			  spinner_tpgruposcomunitarios.setSelection(1);
		  } else if("Sim".equals(formA.getGrupos_comun_associacoes())) {
			  spinner_tpgruposcomunitarios.setSelection(2);
		  } else if("Sim".equals(formA.getGrupos_comun_outros())) {
			  spinner_tpgruposcomunitarios.setSelection(3);
		  }
		  EditText tpgruposcomunitarios_outros = (EditText) findViewById(R.id.tpgruposcomunitarios_income);
		  tpgruposcomunitarios_outros.setText(formA.getGrupos_comun_quais());
		  
		  Spinner spinner_transporte = (Spinner) findViewById(R.id.spinner_transporte);
		  ArrayAdapter spinner_transporteAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, 
				  new String[] { "Onibus", "Caminhao", "Carro", "Carroca", "Outros/Especificar"});
		  spinner_transporte.setAdapter(spinner_transporteAdapter);
		  if("Sim".equals(formA.getMeio_transp_onibus())) {
			  spinner_transporte.setSelection(0);
		  } else if("Sim".equals(formA.getMeio_transp_caminhao())) {
			  spinner_transporte.setSelection(1);
		  } else if("Sim".equals(formA.getMeio_transp_carro())) {
			  spinner_transporte.setSelection(2);
		  } else if("Sim".equals(formA.getMeio_transp_carroca())) {
			  spinner_transporte.setSelection(3);
		  } else if("Sim".equals(formA.getMeio_transp_outros())) {
			  spinner_transporte.setSelection(4);
		  }
		  EditText transporte_outros = (EditText) findViewById(R.id.transporte_income);
		  transporte_outros.setText(formA.getMeio_transp_quais());

		  EditText tpcasa_income = (EditText)findViewById(R.id.tpcasa_income);
		  tpcasa_income.setText(formA.getTipo_casa_qual());
		  
		  if(!fromInsert){
			  switch (formA.getId_tipo_casa()) {
			  case 1:
				  RadioButton tipoCasa_1 = (RadioButton)findViewById(R.id.tipoCasa_1);
				  tipoCasa_1.setChecked(true);
				  break;
			  case 2:
				  RadioButton tipoCasa_2 = (RadioButton)findViewById(R.id.tipoCasa_2);
				  tipoCasa_2.setChecked(true);
				  break;
			  case 3:
				  RadioButton tipoCasa_3 = (RadioButton)findViewById(R.id.tipoCasa_3);
				  tipoCasa_3.setChecked(true);
				  break;
			  case 4:
				  RadioButton tipoCasa_4 = (RadioButton)findViewById(R.id.tipoCasa_4);
				  tipoCasa_4.setChecked(true);
				  break;
			  case 5:
				  RadioButton tipoCasa_5 = (RadioButton)findViewById(R.id.tipoCasa_5);
				  tipoCasa_5.setChecked(true);
				  break;
			  case 6:
				  RadioButton tipoCasa_6 = (RadioButton)findViewById(R.id.tipoCasa_6);
				  tipoCasa_6.setChecked(true);
				  break;
			  default:
				  break;
			  }
			  
		  }
		  
		CheckBox radio = (CheckBox) findViewById(R.id.meio_1);
		if("Sim".equals(formA.getMeios_comun_radio())) {
			radio.setChecked(true);
		}
  		CheckBox tv = (CheckBox) findViewById(R.id.meio_2);
		if("Sim".equals(formA.getMeios_comun_tv())) {
			tv.setChecked(true);
		}
		  /**
		   * Fim de Denificoes de Spinner
		   */

		  EditText bolsaFamilia = (EditText)findViewById(R.id.bolsafamilia_income);
		  bolsaFamilia.setText(formA.getNum_bolsa_familia());
		  
		  name = (EditText) findViewById(R.id.nome_income);
		  occu = (EditText) findViewById(R.id.ocupacao_income);

		  addPessoa = ( Button ) findViewById( R.id.addPessoa);
		  addPessoa.setOnClickListener(okListener);
		  
		  delPessoa = (Button) findViewById(R.id.delPessoa);
		  delPessoa.setOnClickListener(delPessoaListener);

		  botaoListaPessoas = ( Button ) findViewById( R.id.listPessoas );
		  botaoListaPessoas.setOnClickListener(listarPessoasListener);
		  
		  /**
		   * Navegacao de Telas Proximo --> Voltar
		   */

		  Button buttonNext = (Button) findViewById(R.id.Button_next);
		  buttonNext.setOnClickListener(new View.OnClickListener() {
			  public void onClick(View view) {
				  ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				  vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));
				  vf.showNext();
			  }
		  });
		  this.abelhaFlow();

		  // Instance DAO
		  daoFormA = new DAOFormA(this);
		  daoPessoa = new DAOPessoa(this);

	}

	private void planoSaudeSpinner(FormA formA) {
		DAOPlanoSaude daoPlanoSaude = new DAOPlanoSaude(this);
		Cursor cursor = daoPlanoSaude.listAllCursor();
		SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, 
				cursor, 
				new String[] {PlanoSaude.DESCRICAO}, 
				new int[] {android.R.id.text1});
		Spinner spinner_tpplanosaude = (Spinner) findViewById(R.id.spinner_tpplanosaude);
		adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner_tpplanosaude.setAdapter(adapter2);
		if(!fromInsert){
			spinner_tpplanosaude.setSelection(formA.getId_plano_saude());
		}
	}

	private void destinoFezesSpinner(FormA formA) {
		DAODestinoFezes daoDestinoFezes = new DAODestinoFezes(this);
		Cursor cursor = daoDestinoFezes.listAllCursor();
		SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, 
				cursor, 
				new String[] {DestinoFezes.DESCRICAO}, 
				new int[] {android.R.id.text1});
		Spinner spinner_tpfezes = (Spinner) findViewById(R.id.spinner_tpfezes);
		adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner_tpfezes.setAdapter(adapter2);
		
		if(!fromInsert){
			spinner_tpfezes.setSelection(formA.getId_destino_fezes());
		}
	}

	private void abastAguaSpinner(FormA formA) {
		DAOAbastAgua daoAbastAgua = new DAOAbastAgua(this);
		Cursor cursor = daoAbastAgua.listAllCursor();
		SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, 
				cursor, 
				new String[] {AbastecimentoAgua.DESCRICAO}, 
				new int[] {android.R.id.text1});
		Spinner spinner_tpabastacimentoagua = (Spinner) findViewById(R.id.spinner_tpabastacimentoagua);
		adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner_tpabastacimentoagua.setAdapter(adapter2);
		
		if(!fromInsert){
			spinner_tpabastacimentoagua.setSelection(formA.getId_abast_agua());
		}
	}

	private void tratAguaSpinner(FormA formA) {
		DAOTratAgua daoTratAgua = new DAOTratAgua(this);
		Cursor cursor = daoTratAgua.listAllCursor();
		SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, 
				cursor, 
				new String[] {TratamentoAgua.DESCRICAO}, 
				new int[] {android.R.id.text1});
		Spinner spinner_tptratamentoagua = (Spinner) findViewById(R.id.spinner_tptratamentoagua);  
		adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner_tptratamentoagua.setAdapter(adapter2);
		
		if(!fromInsert){
			spinner_tptratamentoagua.setSelection(formA.getId_trat_agua());
		}
	}

	private void destinoLixoSpinner(FormA formA) {
		DAODestinoLixo daoDestinoLixo = new DAODestinoLixo(this);
		Cursor cursor = daoDestinoLixo.listAllCursor();
		SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, 
							cursor, 
							new String[] {DestinoLixo.DESCRICAO}, 
							new int[] {android.R.id.text1});
		Spinner spinner_tpdestinolixo = (Spinner) findViewById(R.id.spinner_tpdestinolixo);
		adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner_tpdestinolixo.setAdapter(adapter2);
		
		if(!fromInsert){
			spinner_tpdestinolixo.setSelection(formA.getId_destino_lixo());
		}
		
	}

	private OnClickListener okListener = new OnClickListener() {
		public void onClick(View v) {
			salvarPessoa(name, occu, dataNascimento, spinnerAlfabetizado,
					spinnerSexo);
			
		}

	};
	
	private OnClickListener delPessoaListener = new OnClickListener() {
		public void onClick(View v) {
			if(name.getText().toString().equals(null) || occu.getText().toString().equals(null)
					|| name.getText().toString().equals("") || occu.getText().toString().equals("")){
				exibirMensagem("PFS", "Selecione uma pessoa para remocao");
			}else{
				removerPessoa(name);
			}
				
		}

	};

	private OnClickListener listarPessoasListener = new OnClickListener() {
		public void onClick(View v) {
			showPessoas(listPessoa);
		}

	};
	
	public void removerPessoa(EditText name){
		for (int i = 0; i < listPessoa.size(); i++) {
			if(listPessoa.get(i).getNome_completo().equals(name.getText().toString())){
				listPessoa.remove(i);
				clearFields();
				break;
			}
		}
		
	}

	public void salvarPessoa(EditText name, EditText occu, TextView nasci, Spinner alfa, Spinner sexo ) {

		/**
		 * Definicoes de Pessoas;
		 */

		try {
			
			if(abelhaValidator.checkFieldsNull(name,occu,nasci,alfa,sexo)){
				exibirMensagem("Erro", "Necessario preencher todos os campos");
				
			}else{
				
				pessoa = new Pessoa();
				pessoa.setNome_completo(name.getText().toString());
				pessoa.setData_nasc(nasci.getText().toString());
				pessoa.setSexo(sexo.getSelectedItem().toString());
				pessoa.setAlfabetizado(alfa.getSelectedItem().toString());
				pessoa.setOcupacao(occu.getText().toString());
				
				if(ficha1.isChecked()){
					pessoa.setFichaBGestante(1);
				}
				if(ficha2.isChecked()){
					pessoa.setFichaBHipertenso(1);
				}
				if(ficha3.isChecked()){
					pessoa.setFichaBHanseniase(1);
				}
				if(ficha4.isChecked()){
					pessoa.setFichaBDiabete(1);
				}
				if(ficha5.isChecked()){
					pessoa.setFichaBTuberculose(1);
				}
				if(ficha6.isChecked()){
					pessoa.setFichaCCrianca(1);
				}
				if(ficha7.isChecked()){
					pessoa.setFichaBInternacao(1);
				}
				if(ficha8.isChecked()){
					pessoa.setFichaBObito(1);
				}
				
				if(ficha9.isChecked()){
					pessoa.setDef_fisica(1);
				}
				
				if(ficha10.isChecked()){
					pessoa.setDef_mental(1);
				}
								
				if(ficha11.isChecked()){
					pessoa.setEscolaridade(1);
				}
				
				if(ficha12.isChecked()){
					pessoa.setAlcoolismo(1);
				}
				
				if(ficha13.isChecked()){
					pessoa.setChagas(1);
				}
				
				if(ficha14.isChecked()){
					pessoa.setEpilepsia(1);
				}
				
				if(ficha15.isChecked()){
					pessoa.setMalaria(1);
				}
				
				listPessoa.add(pessoa);
				
				clearFields();
				exibirMensagem("Cadastro", "Pessoa salva com sucesso!");
				
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	
	public void exibirMensagemSalvarConcluido(String titulo, String mensagem){
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
    	builder.setTitle(titulo);
    	builder.setMessage(mensagem);
    	builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {  
		      public void onClick(DialogInterface dialog, int which) {  
		       launchFichaPreCadastrada();
		    } });

    	AlertDialog alert = builder.create();
    	alert.show();
	}
	
	public void exibirMensagem(String titulo, String mensagem){
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
    	builder.setTitle(titulo);
    	builder.setMessage(mensagem);
    	builder.setNeutralButton("OK", null);
    	builder.show();
	}

	private void clearFields() {
		name.setText("");
		occu.setText("");
		
		final Calendar cal = Calendar.getInstance();
		int year = cal.get(Calendar.YEAR);
		int month = cal.get(Calendar.MONTH);
		int day = cal.get(Calendar.DAY_OF_MONTH);
		
		dataNascimento.setText(new StringBuilder().append(day).append('-')
				.append(month + 1).append('-').append(year));
		
		ficha1.setChecked(false);
		ficha2.setChecked(false);
		ficha3.setChecked(false);
		ficha4.setChecked(false);
		ficha5.setChecked(false);
		ficha6.setChecked(false);
		ficha7.setChecked(false);
		ficha8.setChecked(false);
		
		ficha9.setChecked(false);
		ficha10.setChecked(false);
		ficha11.setChecked(false);
		ficha12.setChecked(false);
		ficha13.setChecked(false);
		ficha14.setChecked(false);
		ficha15.setChecked(false);
		
		showBirth.setText("");
		
	}

	protected void showPessoas(List<Pessoa> listPessoasCheck) {
		
		final List<Pessoa> pAux = listPessoasCheck;
		
		if(listPessoasCheck.isEmpty()){
			exibirMensagem("Erro", "Nao existem pessoas para exibir");
		}else{
			
			final CharSequence[] items = new CharSequence[listPessoasCheck.size()];
			
			for (int i = 0; i < listPessoasCheck.size(); i++) {
				items[i] = listPessoasCheck.get(i).getNome_completo();
			}
			
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
        	builder.setTitle("Pessoas Cadastradas");
        	builder.setItems(items, new DialogInterface.OnClickListener() {
        		public void onClick(DialogInterface dialog, int item) {
        			
        			Pessoa pessoa = pAux.get(item);
        			name.setText(pessoa.getNome_completo());
        			occu.setText(pessoa.getOcupacao());
        			dataNascimento.setText(pessoa.getData_nasc());
        			
        			if(pessoa.getSexo().contains("Masculino")){
        				spinnerSexo.setSelection(0);
        			}else{
        				spinnerSexo.setSelection(1);
        			}

        			ficha1.setChecked(false);
        			ficha2.setChecked(false);
        			ficha3.setChecked(false);
        			ficha4.setChecked(false);
        			ficha5.setChecked(false);
        			ficha6.setChecked(false);
        			ficha7.setChecked(false);
        			ficha8.setChecked(false);
        			
        			ficha9.setChecked(false);
        			ficha10.setChecked(false);
        			ficha11.setChecked(false);
        			ficha12.setChecked(false);
        			ficha13.setChecked(false);
        			ficha14.setChecked(false);
        			ficha15.setChecked(false);
        			

        			if(pessoa.getFichaBGestante() == 1){
        				ficha1.setChecked(true);
        			}
        			if(pessoa.getFichaBHipertenso() == 1){
        				ficha2.setChecked(true);
        			}
        			if(pessoa.getFichaBHanseniase() == 1){
        				ficha3.setChecked(true);
        			}
        			if(pessoa.getFichaBDiabete() == 1){
        				ficha4.setChecked(true);
        			}
        			if(pessoa.getFichaBTuberculose() == 1){
        				ficha5.setChecked(true);
        			}
        			if(pessoa.getFichaCCrianca() == 1){
        				ficha6.setChecked(true);
        			}
        			if(pessoa.getFichaBInternacao() == 1){
        				ficha7.setChecked(true);
        			}
        			if(pessoa.getFichaBObito() == 1){
        				ficha8.setChecked(true);
        			}

        			if(pessoa.getDef_fisica() == 1){
        				ficha9.setChecked(true);
        			}
        			
        			if(pessoa.getDef_mental() == 1){
        				ficha10.setChecked(true);
        			}
        			
        			if(pessoa.getEscolaridade() == 1){
        				ficha11.setChecked(true);
        			}
        			
        			if(pessoa.getAlcoolismo() == 1){
        				ficha12.setChecked(true);
        			}
        			
        			if(pessoa.getChagas() == 1){
        				ficha13.setChecked(true);
        			}
        			
        			if(pessoa.getEpilepsia() == 1){
        				ficha14.setChecked(true);
        			}
        			
        			if(pessoa.getMalaria() == 1){
        				ficha15.setChecked(true);
        			}
        			
        			
        			dialog.dismiss();

        			return;
        	    }
        	});
        	
        	builder.setNeutralButton("OK", null);
        	
        	AlertDialog alert = builder.create();
        	alert.show();
						
		}
		
	}

	private void abelhaFlow() {
		
        Button buttonNext = (Button) findViewById(R.id.Button_next);
        buttonNext.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));
                vf.showNext();
        }
        });

		Button previous = (Button) findViewById(R.id.Button_Previous);
		previous.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.slide_right));
				vf.showPrevious();
			}

		});    

		Button next2 = (Button) findViewById(R.id.Button_Next2);
		next2.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));
				vf.showNext();
			}

		});

		Button previous2 = (Button) findViewById(R.id.Button_Previous02);
		previous2.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.slide_right));
				vf.showPrevious();
			}

		});    

		Button next3 = (Button) findViewById(R.id.Button_Next3);
		next3.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));
				vf.showNext();
			}

		});

		Button previous3 = (Button) findViewById(R.id.Button_Previous03);
		previous3.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.slide_right));
				vf.showPrevious();
			}

		});    

		Button next4 = (Button) findViewById(R.id.Button_Next4);
		next4.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));
				vf.showNext();
			}

		});

		Button previous4 = (Button) findViewById(R.id.Button_Previous04);
		previous4.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.slide_right));
				vf.showPrevious();
			}

		});    

		Button next5 = (Button) findViewById(R.id.Button_Next5);
		next5.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));
				vf.showNext();
			}

		});

		Button previous5 = (Button) findViewById(R.id.Button_Previous05);
		previous5.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.slide_right));
				vf.showPrevious();
			}

		});    

		Button next6 = (Button) findViewById(R.id.Button_Next6);
		next6.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.push_left_in));
				vf.showNext();
			}

		});

		Button previous6 = (Button) findViewById(R.id.Button_Previous06);
		previous6.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
				vf.setAnimation(AnimationUtils.loadAnimation(view.getContext(), R.anim.slide_right));
				vf.showPrevious();
			}

		});    

		Button save = (Button) findViewById(R.id.Button_Save);
		save.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
        		
            	EditText numero = (EditText)findViewById(R.id.numero_income);
            	if(abelhaValidator.validateAllFieds(numero.getText().toString())){
            		formA.setNumero(numero.getText().toString());
            	}else{
            		exibirMensagem("Validacao Abelha", "Campo 'Numero de casa' deve ser preenchido");
            		return;
            	}
            	
            	Spinner spinnerEstados = (Spinner) findViewById(R.id.spinner_estado);
            	String estado = (String)spinnerEstados.getSelectedItem();
            	if(abelhaValidator.validateAllFieds(estado)){
            		formA.setEstado(estado);
            	}else{
            		exibirMensagem("Validacao Abelha", "Campo 'Estado' deve ser preenchido");
            		return;
            	}
            	
            	EditText endereco = (EditText)findViewById(R.id.et_income);
            	if(abelhaValidator.validateAllFieds(endereco.getText().toString())){
            		formA.setEndereco(endereco.getText().toString());
            	}else{
            		exibirMensagem("Validacao Abelha", "Campo 'Endereço' deve ser preenchido");
            		return;
            	}
            	
            	EditText bairro = (EditText)findViewById(R.id.bairro_income);
            	if(abelhaValidator.validateAllFieds(bairro.getText().toString())){
            		formA.setBairro(bairro.getText().toString());
            	}else{
            		exibirMensagem("Validacao Abelha", "Campo 'Bairro' deve ser preenchido");
            		return;
            	}
            	
            	EditText cep = (EditText)findViewById(R.id.cep_income);
            	if(abelhaValidator.validateAllFieds(cep.getText().toString())){
            		formA.setCep(cep.getText().toString());
            	}else{
            		exibirMensagem("Validacao Abelha", "Campo 'CEP' deve ser preenchido");
            		return;
            	}
        		
        		formA.setSegmento("segmento");
        		formA.setArea(1);
        		formA.setMicroArea(1);
        		
        		dateDisplay = (TextView)findViewById(R.id.TextView01);
        		timeDisplay = (TextView)findViewById(R.id.TextView02);
        		
        		formA.setData_emissao(dateDisplay.getText() + " " + timeDisplay.getText());
        		
        		RadioGroup rGtipoCasa = (RadioGroup)findViewById(R.id.tipocasa);
	    		formA.setId_tipo_casa(rGtipoCasa.indexOfChild(findViewById(rGtipoCasa.getCheckedRadioButtonId())) + 1);
        		
        		RadioButton opcao = (RadioButton) findViewById(R.id.tipoCasa_1);
            	if(!opcao.isChecked()){
        			opcao = (RadioButton) findViewById(R.id.tipoCasa_2);
        			if(!opcao.isChecked()){
        				opcao = (RadioButton) findViewById(R.id.tipoCasa_3);
        				if(!opcao.isChecked()){
        					opcao = (RadioButton) findViewById(R.id.tipoCasa_4);
        					if(!opcao.isChecked()){
            					opcao = (RadioButton) findViewById(R.id.tipoCasa_5);
            					if(!opcao.isChecked()){
                					opcao = (RadioButton) findViewById(R.id.tipoCasa_6);
                					
                					if(opcao.isChecked()){
                						
                						EditText tpcasa_income = (EditText)findViewById(R.id.tpcasa_income);
                						if(abelhaValidator.validateAllFieds(tpcasa_income.getText().toString())){
                							formA.setTipo_casa_qual(tpcasa_income.getText().toString());
                		            	}else{
                		            		exibirMensagem("Validacao Abelha", "Campo 'Outros - Tipo de Casa' deve ser preenchido");
                		            		return;
                		            	}
                						
                					}else{
                    					exibirMensagem("Validacao Abelha", "Campo 'Tipo de Casa' deve ser preenchido");
                                		return;
                    				}
                				}
            				}
        				}
        			}
        		}
        		
        		Spinner spinnerNumComodos = (Spinner) findViewById(R.id.spinner_comodos);
            	String numComodos = (String)spinnerNumComodos.getSelectedItem();
            	formA.setNum_comodos(Integer.valueOf(numComodos));
        		
            	Spinner spinnerEnergia = (Spinner) findViewById(R.id.spinner_energia);
            	String energia = (String)spinnerEnergia.getSelectedItem();
            	formA.setEnergia_eletrica(energia);
        		
        		EditText cidade = (EditText)findViewById(R.id.cidade_income);
        		if(abelhaValidator.validateAllFieds(cidade.getText().toString())){
        			formA.setMunicipio(cidade.getText().toString());
            	}else{
            		exibirMensagem("Validacao Abelha", "Campo " + getResources().getResourceName(cidade.getId()) + " deve ser preenchido");
            		return;
            	}
        		
        		Spinner spinnerDestLixo = (Spinner) findViewById(R.id.spinner_tpdestinolixo);
            	Integer destLixo = (Integer)spinnerDestLixo.getSelectedItemPosition();
            	formA.setId_destino_lixo(destLixo);
        		
        		Spinner spinnerTratAgua = (Spinner) findViewById(R.id.spinner_tptratamentoagua);
        		Integer tratAgua = (Integer)spinnerTratAgua.getSelectedItemPosition();
        		formA.setId_trat_agua(tratAgua);
        		
        		Spinner spinnerAbastAgua = (Spinner) findViewById(R.id.spinner_tpabastacimentoagua);
            	Integer abastAgua = (Integer)spinnerAbastAgua.getSelectedItemPosition();
            	formA.setId_abast_agua(abastAgua);
        		
        		Spinner spinnerDestFezes = (Spinner) findViewById(R.id.spinner_tpfezes);
            	Integer destFezes = (Integer)spinnerDestFezes.getSelectedItemPosition();
            	formA.setId_destino_fezes(destFezes);
        		
        		Spinner spinnerPlanoSaude = (Spinner) findViewById(R.id.spinner_tpplanosaude);
            	Integer planoSaude = (Integer)spinnerPlanoSaude.getSelectedItemPosition();
            	formA.setId_plano_saude(planoSaude);
        		
        		Spinner spinnerNumPessoasPlano = (Spinner) findViewById(R.id.spinner_tpnplanosaude);
            	String numPessoasPlanoSaude = (String)spinnerNumPessoasPlano.getSelectedItem();
            	formA.setNumero_pessoas_plano(Integer.valueOf(numPessoasPlanoSaude));
        		
        		EditText observacoes = (EditText)findViewById(R.id.obs_income);
        		formA.setObservacoes(observacoes.getText().toString());
            	
        		CheckBox radio = (CheckBox) findViewById(R.id.meio_1);
        		CheckBox tv = (CheckBox) findViewById(R.id.meio_2);
        		
            	if(radio.isChecked()){
            		
            		formA.setMeios_comun_radio("Sim");
            		if(tv.isChecked()){
            			formA.setMeios_comun_tv("Sim");
            		}else{
            			formA.setMeios_comun_tv("Nao");
            		}
            		
            	}else{
            		
            		formA.setMeios_comun_radio("Nao");
            		if(tv.isChecked()){
            			formA.setMeios_comun_tv("Sim");
            		}else{
            			exibirMensagem("Validacao Abelha", "Campo 'Meio de Comunicacao' deve ser preenchido");
                		return;
            		}
            	}
        		
        		Spinner spinnerTpCasoDoenca = (Spinner) findViewById(R.id.spinner_tpcasodoenca);
        		Integer tipoCasoDeDoenca = (Integer)spinnerTpCasoDoenca.getSelectedItemPosition();
        		switch (tipoCasoDeDoenca) {
        		
        		case 0:
        			formA.setDoenca_benzedeira("Nao");
        			formA.setDoenca_farmacia("Nao");
        			formA.setDoenca_hospital("N�o");
        			formA.setDoenca_outros("Nao");
        			formA.setDoenca_us("Nao");
        			break;
        		case 1:
        			formA.setDoenca_benzedeira("Nao");
        			formA.setDoenca_farmacia("Nao");
        			formA.setDoenca_hospital("Nao");
        			formA.setDoenca_outros("Nao");
        			formA.setDoenca_us("Nao");
        			
        			break;
        		case 2:
        			formA.setDoenca_benzedeira("Nao");
        			formA.setDoenca_farmacia("Nao");
        			formA.setDoenca_hospital("Nao");
        			formA.setDoenca_outros("Nao");
        			formA.setDoenca_us("Nao");
        			break;
        		case 3:
        			formA.setDoenca_benzedeira("Nao");
        			formA.setDoenca_farmacia("Nao");
        			formA.setDoenca_hospital("Nao");
        			formA.setDoenca_outros("Nao");
        			formA.setDoenca_us("Nao");
        			break;
        		case 4:
        			formA.setDoenca_benzedeira("Nao");
        			formA.setDoenca_farmacia("Nao");
        			formA.setDoenca_hospital("Nao");
        			formA.setDoenca_outros("Nao");
        			formA.setDoenca_us("Nao");
        			
        			EditText tpdoencasIncome = (EditText)findViewById(R.id.tpcasodoenca_income);
            		if(abelhaValidator.validateAllFieds(tpdoencasIncome.getText().toString())){
            			formA.setDoenca_quais(tpdoencasIncome.getText().toString());
                	}else{
                		exibirMensagem("Validacao Abelha", "Campo 'Outros - Tipo de Doenca' deve ser preenchido");
                		return;
                	}
        			break;


        		default:
        			break;
        		}
        		
        		Spinner spinnerGruposComunitarios = (Spinner) findViewById(R.id.spinner_tpgruposcomunitarios);
        		switch (spinnerGruposComunitarios.getSelectedItemPosition()) {
				case 0:
					formA.setGrupos_comun_cooperativa("Nao");
					formA.setGrupos_comun_religioso("Nao");
					formA.setGrupos_comun_associacoes("Nao");
					formA.setGrupos_comun_outros("Nao");
					break;
				case 1:
					formA.setGrupos_comun_cooperativa("Nao");
					formA.setGrupos_comun_religioso("Nao");
					formA.setGrupos_comun_associacoes("Nao");
					formA.setGrupos_comun_outros("Nao");
					break;
				case 2:
					formA.setGrupos_comun_cooperativa("Nao");
					formA.setGrupos_comun_religioso("Nao");
					formA.setGrupos_comun_associacoes("Nao");
					formA.setGrupos_comun_outros("Nao");
					break;
				case 3:
					EditText grupoIncome = (EditText)findViewById(R.id.tpgruposcomunitarios_income);
					
					if(abelhaValidator.validateAllFieds(grupoIncome.getText().toString())){
						formA.setGrupos_comun_cooperativa("Nao");
						formA.setGrupos_comun_religioso("Nao");
						formA.setGrupos_comun_associacoes("Nao");
						formA.setGrupos_comun_outros("Nao");
						formA.setGrupos_comun_quais(grupoIncome.getText().toString());
					}else{
						exibirMensagem("Validacao Abelha", "Campo 'Outros - Grupo Comunitarios' deve ser preenchido");
						return;
					}
					break;
				default:
					break;
				}
        		
        		Spinner spinnerMeiosTransp = (Spinner) findViewById(R.id.spinner_transporte);
        		switch (spinnerMeiosTransp.getSelectedItemPosition()) {
				case 0:
					formA.setMeio_transp_onibus("Nao");
					formA.setMeio_transp_caminhao("Nao");
					formA.setMeio_transp_carro("Nao");
					formA.setMeio_transp_carroca("Nao");
					formA.setMeio_transp_outros("Nao");
					break;
				case 1:
					formA.setMeio_transp_onibus("Nao");
					formA.setMeio_transp_caminhao("Nao");
					formA.setMeio_transp_carro("Nao");
					formA.setMeio_transp_carroca("Nao");
					formA.setMeio_transp_outros("Nao");
					break;
				case 2:
					formA.setMeio_transp_onibus("Nao");
					formA.setMeio_transp_caminhao("Nao");
					formA.setMeio_transp_carro("Nao");
					formA.setMeio_transp_carroca("Nao");
					formA.setMeio_transp_outros("Nao");
					break;
				case 3:
					formA.setMeio_transp_onibus("Nao");
					formA.setMeio_transp_caminhao("Nao");
					formA.setMeio_transp_carro("Nao");
					formA.setMeio_transp_carroca("Nao");
					formA.setMeio_transp_outros("Nao");
					break;
				case 4:
					
					EditText editTextMeiosTransp = (EditText)findViewById(R.id.transporte_income);
					if(abelhaValidator.validateAllFieds(editTextMeiosTransp.getText().toString())){
						formA.setMeio_transp_quais(editTextMeiosTransp.getText().toString());
					}else{
						exibirMensagem("Validacao Abelha", "Campo 'Outros - Tipo de Transporte' deve ser preenchido");
						return;
					}
					
					formA.setMeio_transp_onibus("Nao");
					formA.setMeio_transp_caminhao("Nao");
					formA.setMeio_transp_carro("Nao");
					formA.setMeio_transp_carroca("Nao");
					formA.setMeio_transp_outros("Nao");
					break;
				default:
					break;
				}
        		
        		
        		EditText bolsaFamilia = (EditText)findViewById(R.id.bolsafamilia_income);
        		formA.setNum_bolsa_familia(bolsaFamilia.getText().toString());
        		
        		formA.setPre_cadastro(1);
        		
            	try {
	            	Log.d(TAG, "Inserindo Ficha A [" + formA + "]");
	            	long id = daoFormA.update(formA);
					
	            	if(id <= 0) {
	            		id = daoFormA.insert(formA);
	            		exibirMensagemSalvarConcluido("Sucesso","Ficha A - Cadastrada com sucesso");
	            	} else {
	            		exibirMensagemSalvarConcluido("Sucesso","Ficha A - Atualizada com sucesso");
	            	}
					
					/**
					 * Definicoes para salvar objeto Pessoa
					 */
					
	            	//Limpa as pessoas ja pertencentes dessa ficha, se existir...
	            	daoPessoa.delete(new Integer(new Long(formA.getId_ficha()).toString()), true);
	            	
					for(Pessoa p : listPessoa){
						p.setNumero(formA.getNumero());
						p.setId_fichaA(Integer.parseInt(new Long(formA.getId_ficha()).toString()));
						daoPessoa.insert(p);
					}
					
					Log.d(TAG, "Ficha A [" + id + "]");
					
				} catch (Throwable e) {
					Log.e(TAG, "Error", e);
				}
            	
			}

		});

	}

	protected Dialog onCreateDialog(int id){

		switch(id) {

		case DATE_DIALOG_ID:
			return new DatePickerDialog(this, dateListener, year, month, day);

		case TIME_DIALOG_ID:
			return new TimePickerDialog(this, timeListener, hours, min, false);
			
		case DATE_BIRTHDAY:
			return new DatePickerDialog(this, birthdayListener, yearBir, monthBir, dayBir);

		}
		return null;

	}

	private void updateTime(FormA formA) {
		if(formA.getData_emissao() == null) {
		timeDisplay.setText(new StringBuilder().append(hours).append(':')
				.append(min));
		} else {
			
			try {
				timeDisplay.setText(formA.getData_emissao().split("\\ ")[1]);
				
			} catch (Exception e) {
				e.printStackTrace();
				
				timeDisplay.setText(formA.getData_emissao());
				
			}
			
		}

	}
	
	private void updateDateBirth() {
		dataNascimento.setText(new StringBuilder().append(dayBir).append('-')
				.append(monthBir + 1).append('-').append(yearBir));
		
		final Calendar cal = Calendar.getInstance();
		int y = cal.get(Calendar.YEAR);
		int idade = y - yearBir;
		
		if(idade != 0){
			String anos = "" + idade;
			showBirth.setText(anos + " " + "anos");
		}
		
	}

	private void updateDate(FormA formA) {
		if(formA.getData_emissao() == null) {
			dateDisplay.setText(new StringBuilder().append(day).append('-')
					.append(month + 1).append('-').append(year));
		} else {
			dateDisplay.setText(formA.getData_emissao().split("\\ ")[0]);
		}
		
	}

	private DatePickerDialog.OnDateSetListener dateListener = 
		new DatePickerDialog.OnDateSetListener() {

		@Override
		public void onDateSet(DatePicker view, int yr, int monthOfYear,
				int dayOfMonth) {
			year = yr;
			month = monthOfYear;
			day = dayOfMonth;
			updateDate(formA);
		}
	};
	
	private DatePickerDialog.OnDateSetListener birthdayListener = 
		new DatePickerDialog.OnDateSetListener() {

		@Override
		public void onDateSet(DatePicker view, int yr, int monthOfYear,
				int dayOfMonth) {
			yearBir = yr;
			monthBir = monthOfYear;
			dayBir = dayOfMonth;
			updateDateBirth();
		}
	};

	private TimePickerDialog.OnTimeSetListener timeListener = 
		new TimePickerDialog.OnTimeSetListener() {

		@Override
		public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
			hours = hourOfDay;
			min = minute;
			updateTime(formA);
		}

	};
	
	 protected void launchFichaPreCadastrada() {
		 	Intent i = new Intent(FichaA.this, FichasPreCadastradas.class);
     		startActivity(i);
	    }

	public boolean isFromInsert() {
		return fromInsert;
	}

	public void setFromInsert(boolean fromInsert) {
		this.fromInsert = fromInsert;
	}

}
